<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 闭包=内层函数+外层函数的变量
        // 闭包作用：
        // 封闭数据，实现数据私有，外部也可以访问函数内部变量
        // 闭包很有用，因为它允许将函数于其所操作的某些数据关联起来
        // 闭包会引起--内存泄漏
        function a() {
            // 外层函数的变量
            let i = 0
            // 内层函数
            function b() {
                i++
                console.log(i);
            }
            return b
        }
        // 直接调用函数a没用
        //    fun()==== a()=== function b(){}
        let fun = a()
        fun()
    </script>
</body>

</html>